The testing of software is a critical step in the software development lifecycle. The objective of the testing is to verify and validate the integration of the software, the hardware and the configuration thereof, and to prevent malfunction of the software when in use.
Regression testing is a testing process utilized to identify new errors, or regressions, in existing functionality after changes have been made to code or configurations associated with software. This is to ensure that the changes in the system/software have not caused any new defects in an already working version.
In large complex software development projects, changes will be introduced in many aspects of the software architecture, such as code changes, configuration changes, applicative changes, operational changes, or other types of changes. These continual changes need to be tested along with regression testing on an on-going basis to ensure software integrity and functionality. Each change therefore is effort in the entire value chain of software delivery.
Full coverage regression is an overhead and needs to be optimized for both time and effort. Software testing practitioners are always looking for effective techniques to manage, optimize, and identify means which have efficient throughput and turnaround for the right regression coverage and prioritization.
Many new industry practices have been adopted to have the right measure/size of a test suite that provides a high degree of change coverage (i.e., a test suite that tests most or all of the code or other changes). Most such practices do not cover an end to end view of the change in hand. Such practices typically focus on the code change or the functionality that has been introduced. Change based optimized regression testing needs to take into consideration different dimensions of change, such as changes in the code, changes in the configurations (e.g. controlling behaviors such as operational behaviors, applicative/functional behaviors, etc.), the interface and the knowledge/experience of the person making the changes, and defect history, etc.
There is thus a need for addressing these and/or other issues associated with the prior art.